! function(e, n) {
    "object" == typeof exports && "object" == typeof module ? module.exports = n(require("Cesium")) : "function" == typeof define && define.amd ? define(["Cesium"], n) : "object" == typeof exports ? exports.space = n(require("Cesium")) : e.space = n(e.Cesium)
}("undefined" != typeof self ? self : this, function(t) {
    return function(t) {
        var o = {};

        function i(e) {
            if (o[e])
                return o[e].exports;
            var n = o[e] = {
                i: e,
                l: !1,
                exports: {}
            };
            return t[e].call(n.exports, n, n.exports, i),
                n.l = !0,
                n.exports
        }
        return i.m = t,
            i.c = o,
            i.d = function(e, n, t) {
                i.o(e, n) || Object.defineProperty(e, n, {
                    configurable: !1,
                    enumerable: !0,
                    get: t
                })
            },
            i.n = function(e) {
                var n = e && e.__esModule ? function() {
                        return e.default
                    } :
                    function() {
                        return e
                    };
                return i.d(n, "a", n),
                    n
            },
            i.o = function(e, n) {
                return Object.prototype.hasOwnProperty.call(e, n)
            },
            i.p = "",
            i(i.s = 2)
    }([function(e, n) {
        e.exports = t
    }, function(e, n, t) {
        "use strict";
        Object.defineProperty(n, "__esModule", {
                value: !0
            }),
            n.RectangularSensorPrimitive = void 0;
        var T = o(t(0)),
            b = o(t(3)),
            L = o(t(4)),
            z = o(t(5)),
            D = o(t(6));

        function o(e) {
            return e && e.__esModule ? e : {
                default: e
            }
        }
        var V = T.BoundingSphere,
            R = T.Cartesian3,
            i = T.Color,
            h = T.combine,
            I = T.ComponentDatatype,
            r = T.defaultValue,
            a = T.defined,
            O = (T.defineProperties,
                T.destroyObject,
                T.DeveloperError),
            H = T.Matrix4,
            s = T.PrimitiveType,
            W = T.Buffer,
            F = T.BufferUsage,
            l = T.DrawCommand,
            B = T.Pass,
            N = T.RenderState,
            k = T.ShaderProgram,
            Y = T.ShaderSource,
            G = T.VertexArray,
            X = T.BlendingState,
            q = T.CullFace,
            u = T.Material,
            U = T.SceneMode,
            j = T.VertexFormat,
            Z = T.Math,
            Q = T.Matrix3,
            J = (H = T.Matrix4,
                T.JulianDate),
            m = (T.BoxGeometry,
                T.EllipsoidGeometry,
                Math.sin),
            K = Math.cos,
            $ = Math.tan,
            ee = Math.atan,
            ne = (Math.asin, {
                position: 0,
                normal: 1
            });

        function c(e) {
            var n = this;
            e = r(e, r.EMPTY_OBJECT),
                this.show = r(e.show, !0),
                this.slice = r(e.slice, 32),
                this.modelMatrix = H.clone(e.modelMatrix, new H),
                this._modelMatrix = new H,
                this._computedModelMatrix = new H,
                this._computedScanPlaneModelMatrix = new H,
                this.radius = r(e.radius, Number.POSITIVE_INFINITY),
                this._radius = void 0,
                this.xHalfAngle = r(e.xHalfAngle, 0),
                this._xHalfAngle = void 0,
                this.yHalfAngle = r(e.yHalfAngle, 0),
                this._yHalfAngle = void 0,
                this.lineColor = r(e.lineColor, i.WHITE),
                this.showSectorLines = r(e.showSectorLines, !0),
                this.showSectorSegmentLines = r(e.showSectorSegmentLines, !0),
                this.showLateralSurfaces = r(e.showLateralSurfaces, !0),
                this.material = a(e.material) ? e.material : u.fromType(u.ColorType),
                this._material = void 0,
                this._translucent = void 0,
                this.lateralSurfaceMaterial = a(e.lateralSurfaceMaterial) ? e.lateralSurfaceMaterial : u.fromType(u.ColorType),
                this._lateralSurfaceMaterial = void 0,
                this._lateralSurfaceTranslucent = void 0,
                this.showDomeSurfaces = r(e.showDomeSurfaces, !0),
                this.domeSurfaceMaterial = a(e.domeSurfaceMaterial) ? e.domeSurfaceMaterial : u.fromType(u.ColorType),
                this._domeSurfaceMaterial = void 0,
                this.showDomeLines = r(e.showDomeLines, !0),
                this.showIntersection = r(e.showIntersection, !0),
                this.intersectionColor = r(e.intersectionColor, i.WHITE),
                this.intersectionWidth = r(e.intersectionWidth, 5),
                this.showThroughEllipsoid = r(e.showThroughEllipsoid, !1),
                this._showThroughEllipsoid = void 0,
                this.showScanPlane = r(e.showScanPlane, !0),
                this.scanPlaneColor = r(e.scanPlaneColor, i.WHITE),
                this.scanPlaneMode = r(e.scanPlaneMode, "horizontal"),
                this.scanPlaneRate = r(e.scanPlaneRate, 10),
                this._scanePlaneXHalfAngle = 0,
                this._scanePlaneYHalfAngle = 0,
                this._time = J.now(),
                this._boundingSphere = new V,
                this._boundingSphereWC = new V,
                this._sectorFrontCommand = new l({
                    owner: this,
                    primitiveType: s.TRIANGLES,
                    boundingVolume: this._boundingSphereWC
                }),
                this._sectorBackCommand = new l({
                    owner: this,
                    primitiveType: s.TRIANGLES,
                    boundingVolume: this._boundingSphereWC
                }),
                this._sectorVA = void 0,
                this._sectorLineCommand = new l({
                    owner: this,
                    primitiveType: s.LINES,
                    boundingVolume: this._boundingSphereWC
                }),
                this._sectorLineVA = void 0,
                this._sectorSegmentLineCommand = new l({
                    owner: this,
                    primitiveType: s.LINES,
                    boundingVolume: this._boundingSphereWC
                }),
                this._sectorSegmentLineVA = void 0,
                this._domeFrontCommand = new l({
                    owner: this,
                    primitiveType: s.TRIANGLES,
                    boundingVolume: this._boundingSphereWC
                }),
                this._domeBackCommand = new l({
                    owner: this,
                    primitiveType: s.TRIANGLES,
                    boundingVolume: this._boundingSphereWC
                }),
                this._domeVA = void 0,
                this._domeLineCommand = new l({
                    owner: this,
                    primitiveType: s.LINES,
                    boundingVolume: this._boundingSphereWC
                }),
                this._domeLineVA = void 0,
                this._scanPlaneFrontCommand = new l({
                    owner: this,
                    primitiveType: s.TRIANGLES,
                    boundingVolume: this._boundingSphereWC
                }),
                this._scanPlaneBackCommand = new l({
                    owner: this,
                    primitiveType: s.TRIANGLES,
                    boundingVolume: this._boundingSphereWC
                }),
                this._scanRadialCommand = void 0,
                this._colorCommands = [],
                this._frontFaceRS = void 0,
                this._backFaceRS = void 0,
                this._sp = void 0,
                this._uniforms = {
                    u_type: function() {
                        return 0
                    },
                    u_xHalfAngle: function() {
                        return n.xHalfAngle
                    },
                    u_yHalfAngle: function() {
                        return n.yHalfAngle
                    },
                    u_radius: function() {
                        return n.radius
                    },
                    u_showThroughEllipsoid: function() {
                        return n.showThroughEllipsoid
                    },
                    u_showIntersection: function() {
                        return n.showIntersection
                    },
                    u_intersectionColor: function() {
                        return n.intersectionColor
                    },
                    u_intersectionWidth: function() {
                        return n.intersectionWidth
                    },
                    u_normalDirection: function() {
                        return 1
                    },
                    u_lineColor: function() {
                        return n.lineColor
                    }
                },
                this._scanUniforms = {
                    u_xHalfAngle: function() {
                        return n._scanePlaneXHalfAngle
                    },
                    u_yHalfAngle: function() {
                        return n._scanePlaneYHalfAngle
                    },
                    u_radius: function() {
                        return n.radius
                    },
                    u_color: function() {
                        return n.scanPlaneColor
                    },
                    u_showThroughEllipsoid: function() {
                        return n.showThroughEllipsoid
                    },
                    u_showIntersection: function() {
                        return n.showIntersection
                    },
                    u_intersectionColor: function() {
                        return n.intersectionColor
                    },
                    u_intersectionWidth: function() {
                        return n.intersectionWidth
                    },
                    u_normalDirection: function() {
                        return 1
                    },
                    u_lineColor: function() {
                        return n.lineColor
                    }
                }
        }
        c.prototype.update = function(e) {
            var n = e.mode;
            if (this.show && n === U.SCENE3D) {
                var t = !1,
                    o = !1,
                    i = !1,
                    r = this.xHalfAngle,
                    a = this.yHalfAngle;
                if (r < 0 || a < 0)
                    throw new O("halfAngle must be greater than or equal to zero.");
                if (0 != r && 0 != a) {
                    this._xHalfAngle === r && this._yHalfAngle === a || (this._xHalfAngle = r,
                        this._yHalfAngle = a,
                        t = !0);
                    var s = this.radius;
                    if (s < 0)
                        throw new O("this.radius must be greater than or equal to zero.");
                    var l = !1;
                    this._radius !== s && (l = !0,
                            this._radius = s,
                            this._boundingSphere = new V(R.ZERO, this.radius)),
                        (!H.equals(this.modelMatrix, this._modelMatrix) || l) && (H.clone(this.modelMatrix, this._modelMatrix),
                            H.multiplyByUniformScale(this.modelMatrix, this.radius, this._computedModelMatrix),
                            V.transform(this._boundingSphere, this.modelMatrix, this._boundingSphereWC));
                    var u = this.showThroughEllipsoid;
                    this._showThroughEllipsoid !== this.showThroughEllipsoid && (this._showThroughEllipsoid = u,
                        o = !0);
                    var c = this.material;
                    this._material !== c && (this._material = c,
                        i = o = !0);
                    var d = c.isTranslucent();
                    if (this._translucent !== d && (this._translucent = d,
                            o = !0),
                        this.showScanPlane) {
                        var h = e.time,
                            f = J.secondsDifference(h, this._time);
                        f < 0 && (this._time = J.clone(h, this._time));
                        var m, p = Math.max(f % this.scanPlaneRate / this.scanPlaneRate, 0);
                        if ("horizontal" == this.scanPlaneMode) {
                            var _ = K(m = 2 * a * p - a),
                                v = $(r),
                                g = ee(_ * v);
                            this._scanePlaneXHalfAngle = g,
                                this._scanePlaneYHalfAngle = m,
                                T.Matrix3.fromRotationX(this._scanePlaneYHalfAngle, te)
                        } else {
                            m = 2 * r * p - r;
                            var w = $(a),
                                S = K(m),
                                C = ee(S * w);
                            this._scanePlaneXHalfAngle = m,
                                this._scanePlaneYHalfAngle = C,
                                T.Matrix3.fromRotationY(this._scanePlaneXHalfAngle, te)
                        }
                        T.Matrix4.multiplyByMatrix3(this.modelMatrix, te, this._computedScanPlaneModelMatrix),
                            H.multiplyByUniformScale(this._computedScanPlaneModelMatrix, this.radius, this._computedScanPlaneModelMatrix)
                    }
                    t && function(e, n) {
                            var t = n.context,
                                o = ie(e, e.xHalfAngle, e.yHalfAngle),
                                i = function(e, n) {
                                    var t = e.xHalfAngle,
                                        o = e.yHalfAngle,
                                        i = n.zoy,
                                        r = n.zox,
                                        a = [],
                                        s = Q.fromRotationY(t, te);
                                    a.push(i.map(function(e) {
                                        return Q.multiplyByVector(s, e, new T.Cartesian3)
                                    }));
                                    var s = Q.fromRotationX(-o, te);
                                    a.push(r.map(function(e) {
                                        return Q.multiplyByVector(s, e, new T.Cartesian3)
                                    }).reverse());
                                    var s = Q.fromRotationY(-t, te);
                                    a.push(i.map(function(e) {
                                        return Q.multiplyByVector(s, e, new T.Cartesian3)
                                    }).reverse());
                                    var s = Q.fromRotationX(o, te);
                                    return a.push(r.map(function(e) {
                                            return Q.multiplyByVector(s, e, new T.Cartesian3)
                                        })),
                                        a
                                }(e, o);
                            e.showLateralSurfaces && (e._sectorVA = function(e, n) {
                                for (var t = Array.prototype.concat.apply([], n).length - n.length, o = new Float32Array(18 * t), i = 0, r = 0, a = n.length; r < a; r++)
                                    for (var s = n[r], l = R.normalize(R.cross(s[0], s[s.length - 1], oe), oe), u = 0, t = s.length - 1; u < t; u++)
                                        o[i++] = 0,
                                        o[i++] = 0,
                                        o[i++] = 0,
                                        o[i++] = -l.x,
                                        o[i++] = -l.y,
                                        o[i++] = -l.z,
                                        o[i++] = s[u].x,
                                        o[i++] = s[u].y,
                                        o[i++] = s[u].z,
                                        o[i++] = -l.x,
                                        o[i++] = -l.y,
                                        o[i++] = -l.z,
                                        o[i++] = s[u + 1].x,
                                        o[i++] = s[u + 1].y,
                                        o[i++] = s[u + 1].z,
                                        o[i++] = -l.x,
                                        o[i++] = -l.y,
                                        o[i++] = -l.z;
                                var c = W.createVertexBuffer({
                                        context: e,
                                        typedArray: o,
                                        usage: F.STATIC_DRAW
                                    }),
                                    d = 6 * Float32Array.BYTES_PER_ELEMENT,
                                    h = [{
                                        index: ne.position,
                                        vertexBuffer: c,
                                        componentsPerAttribute: 3,
                                        componentDatatype: I.FLOAT,
                                        offsetInBytes: 0,
                                        strideInBytes: d
                                    }, {
                                        index: ne.normal,
                                        vertexBuffer: c,
                                        componentsPerAttribute: 3,
                                        componentDatatype: I.FLOAT,
                                        offsetInBytes: 3 * Float32Array.BYTES_PER_ELEMENT,
                                        strideInBytes: d
                                    }];
                                return new G({
                                    context: e,
                                    attributes: h
                                })
                            }(t, i));
                            e.showSectorLines && (e._sectorLineVA = function(e, n) {
                                for (var t = n.length, o = new Float32Array(9 * t), i = 0, r = 0, a = n.length; r < a; r++) {
                                    var s = n[r];
                                    o[i++] = 0,
                                        o[i++] = 0,
                                        o[i++] = 0,
                                        o[i++] = s[0].x,
                                        o[i++] = s[0].y,
                                        o[i++] = s[0].z
                                }
                                var l = W.createVertexBuffer({
                                        context: e,
                                        typedArray: o,
                                        usage: F.STATIC_DRAW
                                    }),
                                    u = 3 * Float32Array.BYTES_PER_ELEMENT,
                                    c = [{
                                        index: ne.position,
                                        vertexBuffer: l,
                                        componentsPerAttribute: 3,
                                        componentDatatype: I.FLOAT,
                                        offsetInBytes: 0,
                                        strideInBytes: u
                                    }];
                                return new G({
                                    context: e,
                                    attributes: c
                                })
                            }(t, i));
                            e.showSectorSegmentLines && (e._sectorSegmentLineVA = function(e, n) {
                                for (var t = Array.prototype.concat.apply([], n).length - n.length, o = new Float32Array(9 * t), i = 0, r = 0, a = n.length; r < a; r++)
                                    for (var s = n[r], l = 0, t = s.length - 1; l < t; l++)
                                        o[i++] = s[l].x,
                                        o[i++] = s[l].y,
                                        o[i++] = s[l].z,
                                        o[i++] = s[l + 1].x,
                                        o[i++] = s[l + 1].y,
                                        o[i++] = s[l + 1].z;
                                var u = W.createVertexBuffer({
                                        context: e,
                                        typedArray: o,
                                        usage: F.STATIC_DRAW
                                    }),
                                    c = 3 * Float32Array.BYTES_PER_ELEMENT,
                                    d = [{
                                        index: ne.position,
                                        vertexBuffer: u,
                                        componentsPerAttribute: 3,
                                        componentDatatype: I.FLOAT,
                                        offsetInBytes: 0,
                                        strideInBytes: c
                                    }];
                                return new G({
                                    context: e,
                                    attributes: d
                                })
                            }(t, i));
                            e.showDomeSurfaces && (e._domeVA = function(e) {
                                var n = T.EllipsoidGeometry.createGeometry(new T.EllipsoidGeometry({
                                    vertexFormat: j.POSITION_ONLY,
                                    stackPartitions: 32,
                                    slicePartitions: 32
                                }));
                                return G.fromGeometry({
                                    context: e,
                                    geometry: n,
                                    attributeLocations: ne,
                                    bufferUsage: F.STATIC_DRAW,
                                    interleave: !1
                                })
                            }(t));
                            e.showDomeLines && (e._domeLineVA = function(e) {
                                var n = T.EllipsoidOutlineGeometry.createGeometry(new T.EllipsoidOutlineGeometry({
                                    vertexFormat: j.POSITION_ONLY,
                                    stackPartitions: 32,
                                    slicePartitions: 32
                                }));
                                return G.fromGeometry({
                                    context: e,
                                    geometry: n,
                                    attributeLocations: ne,
                                    bufferUsage: F.STATIC_DRAW,
                                    interleave: !1
                                })
                            }(t));
                            if (e.showScanPlane)
                                if ("horizontal" == e.scanPlaneMode) {
                                    var r = ie(e, Z.PI_OVER_TWO, 0);
                                    e._scanPlaneVA = re(t, r.zox)
                                } else {
                                    var r = ie(e, 0, Z.PI_OVER_TWO);
                                    e._scanPlaneVA = re(t, r.zoy)
                                }
                        }(this, e),
                        o && function(e, n, t) {
                            t ? (e._frontFaceRS = N.fromCache({
                                    depthTest: {
                                        enabled: !n
                                    },
                                    depthMask: !1,
                                    blending: X.ALPHA_BLEND,
                                    cull: {
                                        enabled: !0,
                                        face: q.BACK
                                    }
                                }),
                                e._backFaceRS = N.fromCache({
                                    depthTest: {
                                        enabled: !n
                                    },
                                    depthMask: !1,
                                    blending: X.ALPHA_BLEND,
                                    cull: {
                                        enabled: !0,
                                        face: q.FRONT
                                    }
                                }),
                                e._pickRS = N.fromCache({
                                    depthTest: {
                                        enabled: !n
                                    },
                                    depthMask: !1,
                                    blending: X.ALPHA_BLEND
                                })) : (e._frontFaceRS = N.fromCache({
                                    depthTest: {
                                        enabled: !n
                                    },
                                    depthMask: !0
                                }),
                                e._pickRS = N.fromCache({
                                    depthTest: {
                                        enabled: !0
                                    },
                                    depthMask: !0
                                }))
                        }(this, u, d),
                        i && function(e, n, t) {
                            (function(e, n, t) {
                                var o = n.context,
                                    i = b.default,
                                    r = new Y({
                                        sources: [z.default, t.shaderSource, L.default]
                                    });
                                e._sp = k.replaceCache({
                                    context: o,
                                    shaderProgram: e._sp,
                                    vertexShaderSource: i,
                                    fragmentShaderSource: r,
                                    attributeLocations: ne
                                });
                                var a = new Y({
                                    sources: [z.default, t.shaderSource, L.default],
                                    pickColorQualifier: "uniform"
                                });
                                e._pickSP = k.replaceCache({
                                    context: o,
                                    shaderProgram: e._pickSP,
                                    vertexShaderSource: i,
                                    fragmentShaderSource: a,
                                    attributeLocations: ne
                                })
                            })(e, n, t),
                            e.showScanPlane && function(e, n, t) {
                                var o = n.context,
                                    i = b.default,
                                    r = new Y({
                                        sources: [z.default, t.shaderSource, D.default]
                                    });
                                e._scanePlaneSP = k.replaceCache({
                                    context: o,
                                    shaderProgram: e._scanePlaneSP,
                                    vertexShaderSource: i,
                                    fragmentShaderSource: r,
                                    attributeLocations: ne
                                })
                            }(e, n, t)
                        }(this, e, c),
                        (o || i) && function(e, n) {
                            e._colorCommands.length = 0;
                            var t = n ? B.TRANSLUCENT : B.OPAQUE;
                            e.showLateralSurfaces && ae(e, e._sectorFrontCommand, e._sectorBackCommand, e._frontFaceRS, e._backFaceRS, e._sp, e._sectorVA, e._uniforms, e._computedModelMatrix, n, t);
                            e.showSectorLines && ae(e, e._sectorLineCommand, void 0, e._frontFaceRS, e._backFaceRS, e._sp, e._sectorLineVA, e._uniforms, e._computedModelMatrix, n, t, !0);
                            e.showSectorSegmentLines && ae(e, e._sectorSegmentLineCommand, void 0, e._frontFaceRS, e._backFaceRS, e._sp, e._sectorSegmentLineVA, e._uniforms, e._computedModelMatrix, n, t, !0);
                            e.showDomeSurfaces && ae(e, e._domeFrontCommand, e._domeBackCommand, e._frontFaceRS, e._backFaceRS, e._sp, e._domeVA, e._uniforms, e._computedModelMatrix, n, t);
                            e.showDomeLines && ae(e, e._domeLineCommand, void 0, e._frontFaceRS, e._backFaceRS, e._sp, e._domeLineVA, e._uniforms, e._computedModelMatrix, n, t, !0);
                            e.showScanPlane && ae(e, e._scanPlaneFrontCommand, e._scanPlaneBackCommand, e._frontFaceRS, e._backFaceRS, e._scanePlaneSP, e._scanPlaneVA, e._scanUniforms, e._computedScanPlaneModelMatrix, n, t)
                        }(this, d);
                    var y = e.commandList,
                        x = e.passes,
                        E = this._colorCommands;
                    if (x.render)
                        for (var P = 0, A = E.length; P < A; P++) {
                            var M = E[P];
                            y.push(M)
                        }
                }
            }
        };
        var te = new Q,
            oe = new R;

        function ie(e, n, t) {
            for (var o = e.slice, i = K(t), r = $(t), a = K(n), s = $(n), l = ee(a * r), u = ee(i * s), c = [], d = 0; d < o; d++) {
                var h = 2 * l * d / (o - 1) - l;
                c.push(new R(0, m(h), K(h)))
            }
            var f = [];
            for (d = 0; d < o; d++) {
                h = 2 * u * d / (o - 1) - u;
                f.push(new R(m(h), 0, K(h)))
            }
            return {
                zoy: c,
                zox: f
            }
        }

        function re(e, n) {
            for (var t = n.length - 1, o = new Float32Array(9 * t), i = 0, r = 0; r < t; r++)
                o[i++] = 0,
                o[i++] = 0,
                o[i++] = 0,
                o[i++] = n[r].x,
                o[i++] = n[r].y,
                o[i++] = n[r].z,
                o[i++] = n[r + 1].x,
                o[i++] = n[r + 1].y,
                o[i++] = n[r + 1].z;
            var a = W.createVertexBuffer({
                    context: e,
                    typedArray: o,
                    usage: F.STATIC_DRAW
                }),
                s = 3 * Float32Array.BYTES_PER_ELEMENT,
                l = [{
                    index: ne.position,
                    vertexBuffer: a,
                    componentsPerAttribute: 3,
                    componentDatatype: I.FLOAT,
                    offsetInBytes: 0,
                    strideInBytes: s
                }];
            return new G({
                context: e,
                attributes: l
            })
        }

        function ae(e, n, t, o, i, r, a, s, l, u, c, d) {
            u && t && (t.vertexArray = a,
                    t.renderState = i,
                    t.shaderProgram = r,
                    t.uniformMap = h(s, e._material._uniforms),
                    t.uniformMap.u_normalDirection = function() {
                        return -1
                    },
                    t.pass = c,
                    t.modelMatrix = l,
                    e._colorCommands.push(t)),
                n.vertexArray = a,
                n.renderState = o,
                n.shaderProgram = r,
                n.uniformMap = h(s, e._material._uniforms),
                d && (n.uniformMap.u_type = function() {
                    return 1
                }),
                n.pass = c,
                n.modelMatrix = l,
                e._colorCommands.push(n)
        }
        n.RectangularSensorPrimitive = c
    }, function(e, n, t) {
        "use strict";
        var o, i = t(0),
            r = (o = i) && o.__esModule ? o : {
                default: o
            },
            a = t(1),
            s = t(7),
            l = t(8);
        r.RectangularSensorPrimitive = a.RectangularSensorPrimitive,
            r.RectangularSensorGraphics = s.RectangularSensorGraphics,
            r.RectangularSensorVisualizer = l.RectangularSensorVisualizer;
        var u = r.DataSourceDisplay,
            c = u.defaultVisualizersCallback;
        u.defaultVisualizersCallback = function(e, n, t) {
            var o = t.entities;
            return c(e, n, t).concat([new l.RectangularSensorVisualizer(e, o)])
        }
    }, function(e, n) {
        e.exports = "attribute vec4 position;\r\nattribute vec3 normal;\r\n\r\nvarying vec3 v_position;\r\nvarying vec3 v_positionWC;\r\nvarying vec3 v_positionEC;\r\nvarying vec3 v_normalEC;\r\n\r\nvoid main()\r\n{\r\n    gl_Position = czm_modelViewProjection * position;\r\n    v_position = vec3(position);\r\n    v_positionWC = (czm_model * position).xyz;\r\n    v_positionEC = (czm_modelView * position).xyz;\r\n    v_normalEC = czm_normal * normal;\r\n}"
    }, function(e, n) {
        e.exports = '#ifdef GL_OES_standard_derivatives\r\n    #extension GL_OES_standard_derivatives : enable\r\n#endif\r\n\r\nuniform bool u_showIntersection;\r\nuniform bool u_showThroughEllipsoid;\r\n\r\nuniform float u_radius;\r\nuniform float u_xHalfAngle;\r\nuniform float u_yHalfAngle;\r\nuniform float u_normalDirection;\r\nuniform float u_type;\r\n\r\nvarying vec3 v_position;\r\nvarying vec3 v_positionWC;\r\nvarying vec3 v_positionEC;\r\nvarying vec3 v_normalEC;\r\n\r\nvec4 getColor(float sensorRadius, vec3 pointEC)\r\n{\r\n    czm_materialInput materialInput;\r\n\r\n    vec3 pointMC = (czm_inverseModelView * vec4(pointEC, 1.0)).xyz;\r\n    materialInput.st = sensor2dTextureCoordinates(sensorRadius, pointMC);\r\n    materialInput.str = pointMC / sensorRadius;\r\n\r\n    vec3 positionToEyeEC = -v_positionEC;\r\n    materialInput.positionToEyeEC = positionToEyeEC;\r\n\r\n    vec3 normalEC = normalize(v_normalEC);\r\n    materialInput.normalEC = u_normalDirection * normalEC;\r\n\r\n    czm_material material = czm_getMaterial(materialInput);\r\n\r\n    return mix(czm_phong(normalize(positionToEyeEC), material), vec4(material.diffuse, material.alpha), 0.4);\r\n\r\n}\r\n\r\nbool isOnBoundary(float value, float epsilon)\r\n{\r\n    float width = getIntersectionWidth();\r\n    float tolerance = width * epsilon;\r\n\r\n#ifdef GL_OES_standard_derivatives\r\n    float delta = max(abs(dFdx(value)), abs(dFdy(value)));\r\n    float pixels = width * delta;\r\n    float temp = abs(value);\r\n    // There are a couple things going on here.\r\n    // First we test the value at the current fragment to see if it is within the tolerance.\r\n    // We also want to check if the value of an adjacent pixel is within the tolerance,\r\n    // but we don\'t want to admit points that are obviously not on the surface.\r\n    // For example, if we are looking for "value" to be close to 0, but value is 1 and the adjacent value is 2,\r\n    // then the delta would be 1 and "temp - delta" would be "1 - 1" which is zero even though neither of\r\n    // the points is close to zero.\r\n    return temp < tolerance && temp < pixels || (delta < 10.0 * tolerance && temp - delta < tolerance && temp < pixels);\r\n#else\r\n    return abs(value) < tolerance;\r\n#endif\r\n}\r\n\r\nvec4 shade(bool isOnBoundary)\r\n{\r\n    if (u_showIntersection && isOnBoundary)\r\n    {\r\n        return getIntersectionColor();\r\n    }\r\n    if(u_type == 1.0){\r\n        return getLineColor();\r\n    }\r\n    return getColor(u_radius, v_positionEC);\r\n}\r\n\r\nfloat ellipsoidSurfaceFunction(czm_ellipsoid ellipsoid, vec3 point)\r\n{\r\n    vec3 scaled = ellipsoid.inverseRadii * point;\r\n    return dot(scaled, scaled) - 1.0;\r\n}\r\n\r\nvoid main()\r\n{\r\n    vec3 sensorVertexWC = czm_model[3].xyz;      // (0.0, 0.0, 0.0) in model coordinates\r\n    vec3 sensorVertexEC = czm_modelView[3].xyz;  // (0.0, 0.0, 0.0) in model coordinates\r\n\r\n    //vec3 pixDir = normalize(v_position);\r\n    float positionX = v_position.x;\r\n    float positionY = v_position.y;\r\n    float positionZ = v_position.z;\r\n\r\n    vec3 zDir = vec3(0.0, 0.0, 1.0);\r\n    vec3 lineX = vec3(positionX, 0 ,positionZ);\r\n    vec3 lineY = vec3(0, positionY, positionZ);\r\n    float resX = dot(normalize(lineX), zDir);\r\n    if(resX < cos(u_xHalfAngle)-0.00001){\r\n        discard;\r\n    }\r\n    float resY = dot(normalize(lineY), zDir);\r\n    if(resY < cos(u_yHalfAngle)-0.00001){\r\n        discard;\r\n    }\r\n\r\n\r\n    czm_ellipsoid ellipsoid = czm_getWgs84EllipsoidEC();\r\n    float ellipsoidValue = ellipsoidSurfaceFunction(ellipsoid, v_positionWC);\r\n\r\n    // Occluded by the ellipsoid?\r\n\tif (!u_showThroughEllipsoid)\r\n\t{\r\n\t    // Discard if in the ellipsoid\r\n\t    // PERFORMANCE_IDEA: A coarse check for ellipsoid intersection could be done on the CPU first.\r\n\t    if (ellipsoidValue < 0.0)\r\n\t    {\r\n            discard;\r\n\t    }\r\n\r\n\t    // Discard if in the sensor\'s shadow\r\n\t    if (inSensorShadow(sensorVertexWC, ellipsoid, v_positionWC))\r\n\t    {\r\n\t        discard;\r\n\t    }\r\n    }\r\n\r\n    // Notes: Each surface functions should have an associated tolerance based on the floating point error.\r\n    bool isOnEllipsoid = isOnBoundary(ellipsoidValue, czm_epsilon3);\r\n    //isOnEllipsoid = false;\r\n    //if((resX >= 0.8 && resX <= 0.81)||(resY >= 0.8 && resY <= 0.81)){\r\n    /*if(false){\r\n        gl_FragColor = vec4(1.0,0.0,0.0,1.0);\r\n    }else{\r\n        gl_FragColor = shade(isOnEllipsoid);\r\n    }\r\n*/\r\n    gl_FragColor = shade(isOnEllipsoid);\r\n\r\n}'
    }, function(e, n) {
        e.exports = "uniform vec4 u_intersectionColor;\nuniform float u_intersectionWidth;\nuniform vec4 u_lineColor;\n\nbool inSensorShadow(vec3 coneVertexWC, czm_ellipsoid ellipsoidEC, vec3 pointWC)\n{\n    // Diagonal matrix from the unscaled ellipsoid space to the scaled space.    \n    vec3 D = ellipsoidEC.inverseRadii;\n\n    // Sensor vertex in the scaled ellipsoid space\n    vec3 q = D * coneVertexWC;\n    float qMagnitudeSquared = dot(q, q);\n    float test = qMagnitudeSquared - 1.0;\n    \n    // Sensor vertex to fragment vector in the ellipsoid's scaled space\n    vec3 temp = D * pointWC - q;\n    float d = dot(temp, q);\n    \n    // Behind silhouette plane and inside silhouette cone\n    return (d < -test) && (d / length(temp) < -sqrt(test));\n}\n\n///////////////////////////////////////////////////////////////////////////////\n\nvec4 getLineColor()\n{\n    return u_lineColor;\n}\n\nvec4 getIntersectionColor()\n{\n    return u_intersectionColor;\n}\n\nfloat getIntersectionWidth()\n{\n    return u_intersectionWidth;\n}\n\nvec2 sensor2dTextureCoordinates(float sensorRadius, vec3 pointMC)\n{\n    // (s, t) both in the range [0, 1]\n    float t = pointMC.z / sensorRadius;\n    float s = 1.0 + (atan(pointMC.y, pointMC.x) / czm_twoPi);\n    s = s - floor(s);\n    \n    return vec2(s, t);\n}\n"
    }, function(e, n) {
        e.exports = '#ifdef GL_OES_standard_derivatives\r\n    #extension GL_OES_standard_derivatives : enable\r\n#endif\r\n\r\nuniform bool u_showIntersection;\r\nuniform bool u_showThroughEllipsoid;\r\n\r\nuniform float u_radius;\r\nuniform float u_xHalfAngle;\r\nuniform float u_yHalfAngle;\r\nuniform float u_normalDirection;\r\nuniform vec4 u_color;\r\n\r\nvarying vec3 v_position;\r\nvarying vec3 v_positionWC;\r\nvarying vec3 v_positionEC;\r\nvarying vec3 v_normalEC;\r\n\r\nvec4 getColor(float sensorRadius, vec3 pointEC)\r\n{\r\n    czm_materialInput materialInput;\r\n\r\n    vec3 pointMC = (czm_inverseModelView * vec4(pointEC, 1.0)).xyz;\r\n    materialInput.st = sensor2dTextureCoordinates(sensorRadius, pointMC);\r\n    materialInput.str = pointMC / sensorRadius;\r\n\r\n    vec3 positionToEyeEC = -v_positionEC;\r\n    materialInput.positionToEyeEC = positionToEyeEC;\r\n\r\n    vec3 normalEC = normalize(v_normalEC);\r\n    materialInput.normalEC = u_normalDirection * normalEC;\r\n\r\n    czm_material material = czm_getMaterial(materialInput);\r\n\r\n    material.diffuse = u_color.rgb;\r\n    material.alpha = u_color.a;\r\n\r\n    return mix(czm_phong(normalize(positionToEyeEC), material), vec4(material.diffuse, material.alpha), 0.4);\r\n\r\n}\r\n\r\nbool isOnBoundary(float value, float epsilon)\r\n{\r\n    float width = getIntersectionWidth();\r\n    float tolerance = width * epsilon;\r\n\r\n#ifdef GL_OES_standard_derivatives\r\n    float delta = max(abs(dFdx(value)), abs(dFdy(value)));\r\n    float pixels = width * delta;\r\n    float temp = abs(value);\r\n    // There are a couple things going on here.\r\n    // First we test the value at the current fragment to see if it is within the tolerance.\r\n    // We also want to check if the value of an adjacent pixel is within the tolerance,\r\n    // but we don\'t want to admit points that are obviously not on the surface.\r\n    // For example, if we are looking for "value" to be close to 0, but value is 1 and the adjacent value is 2,\r\n    // then the delta would be 1 and "temp - delta" would be "1 - 1" which is zero even though neither of\r\n    // the points is close to zero.\r\n    return temp < tolerance && temp < pixels || (delta < 10.0 * tolerance && temp - delta < tolerance && temp < pixels);\r\n#else\r\n    return abs(value) < tolerance;\r\n#endif\r\n}\r\n\r\nvec4 shade(bool isOnBoundary)\r\n{\r\n    if (u_showIntersection && isOnBoundary)\r\n    {\r\n        return getIntersectionColor();\r\n    }\r\n    return getColor(u_radius, v_positionEC);\r\n}\r\n\r\nfloat ellipsoidSurfaceFunction(czm_ellipsoid ellipsoid, vec3 point)\r\n{\r\n    vec3 scaled = ellipsoid.inverseRadii * point;\r\n    return dot(scaled, scaled) - 1.0;\r\n}\r\n\r\nvoid main()\r\n{\r\n    vec3 sensorVertexWC = czm_model[3].xyz;      // (0.0, 0.0, 0.0) in model coordinates\r\n    vec3 sensorVertexEC = czm_modelView[3].xyz;  // (0.0, 0.0, 0.0) in model coordinates\r\n\r\n    //vec3 pixDir = normalize(v_position);\r\n    float positionX = v_position.x;\r\n    float positionY = v_position.y;\r\n    float positionZ = v_position.z;\r\n\r\n    vec3 zDir = vec3(0.0, 0.0, 1.0);\r\n    vec3 lineX = vec3(positionX, 0 ,positionZ);\r\n    vec3 lineY = vec3(0, positionY, positionZ);\r\n    float resX = dot(normalize(lineX), zDir);\r\n    if(resX < cos(u_xHalfAngle) - 0.0001){\r\n        discard;\r\n    }\r\n    float resY = dot(normalize(lineY), zDir);\r\n    if(resY < cos(u_yHalfAngle)- 0.0001){\r\n        discard;\r\n    }\r\n\r\n\r\n    czm_ellipsoid ellipsoid = czm_getWgs84EllipsoidEC();\r\n    float ellipsoidValue = ellipsoidSurfaceFunction(ellipsoid, v_positionWC);\r\n\r\n    // Occluded by the ellipsoid?\r\n\tif (!u_showThroughEllipsoid)\r\n\t{\r\n\t    // Discard if in the ellipsoid\r\n\t    // PERFORMANCE_IDEA: A coarse check for ellipsoid intersection could be done on the CPU first.\r\n\t    if (ellipsoidValue < 0.0)\r\n\t    {\r\n            discard;\r\n\t    }\r\n\r\n\t    // Discard if in the sensor\'s shadow\r\n\t    if (inSensorShadow(sensorVertexWC, ellipsoid, v_positionWC))\r\n\t    {\r\n\t        discard;\r\n\t    }\r\n    }\r\n\r\n    // Notes: Each surface functions should have an associated tolerance based on the floating point error.\r\n    bool isOnEllipsoid = isOnBoundary(ellipsoidValue, czm_epsilon3);\r\n    gl_FragColor = shade(isOnEllipsoid);\r\n\r\n}'
    }, function(e, n, t) {
        "use strict";
        Object.defineProperty(n, "__esModule", {
                value: !0
            }),
            n.RectangularSensorGraphics = void 0;
        var o, i = t(0),
            r = (o = i) && o.__esModule ? o : {
                default: o
            };
        var a = r.defaultValue,
            s = r.defined,
            l = r.defineProperties,
            u = r.DeveloperError,
            c = r.Event,
            d = r.createMaterialPropertyDescriptor,
            h = r.createPropertyDescriptor;

        function f(e) {
            this._show = void 0,
                this._radius = void 0,
                this._xHalfAngle = void 0,
                this._yHalfAngle = void 0,
                this._lineColor = void 0,
                this._showSectorLines = void 0,
                this._showSectorSegmentLines = void 0,
                this._showLateralSurfaces = void 0,
                this._material = void 0,
                this._showDomeSurfaces = void 0,
                this._showDomeLines = void 0,
                this._showIntersection = void 0,
                this._intersectionColor = void 0,
                this._intersectionWidth = void 0,
                this._showThroughEllipsoid = void 0,
                this._gaze = void 0,
                this._showScanPlane = void 0,
                this._scanPlaneColor = void 0,
                this._scanPlaneMode = void 0,
                this._scanPlaneRate = void 0,
                this._definitionChanged = new c,
                this.merge(a(e, a.EMPTY_OBJECT))
        }
        l(f.prototype, {
                definitionChanged: {
                    get: function() {
                        return this._definitionChanged
                    }
                },
                show: h("show"),
                radius: h("radius"),
                xHalfAngle: h("xHalfAngle"),
                yHalfAngle: h("yHalfAngle"),
                lineColor: h("lineColor"),
                showSectorLines: h("showSectorLines"),
                showSectorSegmentLines: h("showSectorSegmentLines"),
                showLateralSurfaces: h("showLateralSurfaces"),
                material: d("material"),
                showDomeSurfaces: h("showDomeSurfaces"),
                showDomeLines: h("showDomeLines "),
                showIntersection: h("showIntersection"),
                intersectionColor: h("intersectionColor"),
                intersectionWidth: h("intersectionWidth"),
                showThroughEllipsoid: h("showThroughEllipsoid"),
                gaze: h("gaze"),
                showScanPlane: h("showScanPlane"),
                scanPlaneColor: h("scanPlaneColor"),
                scanPlaneMode: h("scanPlaneMode"),
                scanPlaneRate: h("scanPlaneRate")
            }),
            f.prototype.clone = function(e) {
                return s(e) || (e = new f),
                    e.show = this.show,
                    e.radius = this.radius,
                    e.xHalfAngle = this.xHalfAngle,
                    e.yHalfAngle = this.yHalfAngle,
                    e.lineColor = this.lineColor,
                    e.showSectorLines = this.showSectorLines,
                    e.showSectorSegmentLines = this.showSectorSegmentLines,
                    e.showLateralSurfaces = this.showLateralSurfaces,
                    e.material = this.material,
                    e.showDomeSurfaces = this.showDomeSurfaces,
                    e.showDomeLines = this.showDomeLines,
                    e.showIntersection = this.showIntersection,
                    e.intersectionColor = this.intersectionColor,
                    e.intersectionWidth = this.intersectionWidth,
                    e.showThroughEllipsoid = this.showThroughEllipsoid,
                    e.gaze = this.gaze,
                    e.showScanPlane = this.showScanPlane,
                    e.scanPlaneColor = this.scanPlaneColor,
                    e.scanPlaneMode = this.scanPlaneMode,
                    e.scanPlaneRate = this.scanPlaneRate,
                    e
            },
            f.prototype.merge = function(e) {
                if (!s(e))
                    throw new u("source is required.");
                this.show = a(this.show, e.show),
                    this.radius = a(this.radius, e.radius),
                    this.xHalfAngle = a(this.xHalfAngle, e.xHalfAngle),
                    this.yHalfAngle = a(this.yHalfAngle, e.yHalfAngle),
                    this.lineColor = a(this.lineColor, e.lineColor),
                    this.showSectorLines = a(this.showSectorLines, e.showSectorLines),
                    this.showSectorSegmentLines = a(this.showSectorSegmentLines, e.showSectorSegmentLines),
                    this.showLateralSurfaces = a(this.showLateralSurfaces, e.showLateralSurfaces),
                    this.material = a(this.material, e.material),
                    this.showDomeSurfaces = a(this.showDomeSurfaces, e.showDomeSurfaces),
                    this.showDomeLines = a(this.showDomeLines, e.showDomeLines),
                    this.showIntersection = a(this.showIntersection, e.showIntersection),
                    this.intersectionColor = a(this.intersectionColor, e.intersectionColor),
                    this.intersectionWidth = a(this.intersectionWidth, e.intersectionWidth),
                    this.showThroughEllipsoid = a(this.showThroughEllipsoid, e.showThroughEllipsoid),
                    this.gaze = a(this.gaze, e.gaze),
                    this.showScanPlane = a(this.showScanPlane, e.showScanPlane),
                    this.scanPlaneColor = a(this.scanPlaneColor, e.scanPlaneColor),
                    this.scanPlaneMode = a(this.scanPlaneMode, e.scanPlaneMode),
                    this.scanPlaneRate = a(this.scanPlaneRate, e.scanPlaneRate)
            },
            n.RectangularSensorGraphics = f
    }, function(e, n, t) {
        "use strict";
        Object.defineProperty(n, "__esModule", {
                value: !0
            }),
            n.RectangularSensorVisualizer = void 0;
        var o, i = t(0),
            C = (o = i) && o.__esModule ? o : {
                default: o
            },
            y = t(1),
            u = t(9);
        var r = C.default.AssociativeArray,
            x = C.default.Cartesian3,
            E = C.default.Color,
            P = C.default.defined,
            a = C.default.destroyObject,
            A = C.default.DeveloperError,
            M = C.default.Matrix3,
            T = C.default.Matrix4,
            b = C.default.Quaternion,
            L = C.default.MaterialProperty,
            z = C.default.Property,
            D = new M,
            V = (new T,
                new x),
            R = new x,
            I = new b,
            O = new x,
            H = new b,
            s = function e(n, t) {
                if (!P(n))
                    throw new A("scene is required.");
                if (!P(t))
                    throw new A("entityCollection is required.");
                t.collectionChanged.addEventListener(e.prototype._onCollectionChanged, this),
                    this._scene = n,
                    this._primitives = n.primitives,
                    this._entityCollection = t,
                    this._hash = {},
                    this._entitiesToVisualize = new r,
                    this._onCollectionChanged(t, t.values, [], [])
            };
        s.prototype.update = function(e) {
                if (!P(e))
                    throw new A("time is required.");
                for (var n = this._entitiesToVisualize.values, t = this._hash, o = this._primitives, i = 0, r = n.length; i < r; i++) {
                    var a, s, l, u, c = n[i],
                        d = c._rectangularSensor,
                        h = t[c.id],
                        f = c.isShowing && c.isAvailable(e) && z.getValueOrDefault(d._show, e, !0);
                    if (f && (a = z.getValueOrUndefined(c._position, e, V),
                            S = z.getValueOrUndefined(c._orientation, e, I),
                            s = z.getValueOrUndefined(d._radius, e),
                            l = z.getValueOrUndefined(d._xHalfAngle, e),
                            u = z.getValueOrUndefined(d._yHalfAngle, e),
                            f = P(a) && P(l) && P(u)),
                        f) {
                        var m = P(h) ? h.primitive : void 0;
                        P(m) || ((m = new y.RectangularSensorPrimitive).id = c,
                            o.add(m),
                            h = {
                                primitive: m,
                                position: void 0,
                                orientation: void 0
                            },
                            t[c.id] = h);
                        var p = z.getValueOrUndefined(d._gaze, e);
                        if (P(p)) {
                            var _ = z.getValueOrUndefined(p._position, e, R);
                            if (!P(a) || !P(_))
                                continue;
                            var v = x.subtract(a, _, O),
                                g = x.angleBetween(C.default.Cartesian3.UNIT_Z, v),
                                w = x.cross(C.default.Cartesian3.UNIT_Z, v, O),
                                S = b.fromAxisAngle(w, g - Math.PI, H);
                            s = x.distance(a, _),
                                m.modelMatrix = T.fromRotationTranslation(M.fromQuaternion(S, D), a, m.modelMatrix)
                        } else
                            x.equals(a, h.position) && b.equals(S, h.orientation) || (P(S) ? (m.modelMatrix = T.fromRotationTranslation(M.fromQuaternion(S, D), a, m.modelMatrix),
                                h.position = x.clone(a, h.position),
                                h.orientation = b.clone(S, h.orientation)) : (m.modelMatrix = C.default.Transforms.eastNorthUpToFixedFrame(a),
                                h.position = x.clone(a, h.position)));
                        m.show = !0,
                            m.gaze = p,
                            m.radius = s,
                            m.xHalfAngle = l,
                            m.yHalfAngle = u,
                            m.lineColor = z.getValueOrDefault(d._lineColor, e, E.WHITE),
                            m.showSectorLines = z.getValueOrDefault(d._showSectorLines, e, !0),
                            m.showSectorSegmentLines = z.getValueOrDefault(d._showSectorSegmentLines, e, !0),
                            m.showLateralSurfaces = z.getValueOrDefault(d._showLateralSurfaces, e, !0),
                            m.material = L.getValue(e, d._material, m.material),
                            m.showDomeSurfaces = z.getValueOrDefault(d._showDomeSurfaces, e, !0),
                            m.showDomeLines = z.getValueOrDefault(d._showDomeLines, e, !0),
                            m.showIntersection = z.getValueOrDefault(d._showIntersection, e, !0),
                            m.intersectionColor = z.getValueOrDefault(d._intersectionColor, e, E.WHITE),
                            m.intersectionWidth = z.getValueOrDefault(d._intersectionWidth, e, 1),
                            m.showThroughEllipsoid = z.getValueOrDefault(d._showThroughEllipsoid, e, !0),
                            m.scanPlaneMode = z.getValueOrDefault(d._scanPlaneMode, e),
                            m.scanPlaneColor = z.getValueOrDefault(d._scanPlaneColor, e, E.WHITE),
                            m.showScanPlane = z.getValueOrDefault(d._showScanPlane, e, !0),
                            m.scanPlaneRate = z.getValueOrDefault(d._scanPlaneRate, e, 1)
                    } else
                        P(h) && (h.primitive.show = !1)
                }
                return !0
            },
            s.prototype.isDestroyed = function() {
                return !1
            },
            s.prototype.destroy = function() {
                for (var e = this._entitiesToVisualize.values, n = this._hash, t = this._primitives, o = e.length - 1; - 1 < o; o--)
                    (0,
                        u.removePrimitive)(e[o], n, t);
                return a(this)
            },
            s.prototype._onCollectionChanged = function(e, n, t, o) {
                var i, r, a = this._entitiesToVisualize,
                    s = this._hash,
                    l = this._primitives;
                for (i = n.length - 1; - 1 < i; i--)
                    r = n[i],
                    P(r._rectangularSensor) && P(r._position) && a.set(r.id, r);
                for (i = o.length - 1; - 1 < i; i--)
                    r = o[i],
                    P(r._rectangularSensor) && P(r._position) ? a.set(r.id, r) : ((0,
                            u.removePrimitive)(r, s, l),
                        a.remove(r.id));
                for (i = t.length - 1; - 1 < i; i--)
                    r = t[i],
                    (0,
                        u.removePrimitive)(r, s, l),
                    a.remove(r.id)
            },
            n.RectangularSensorVisualizer = s
    }, function(e, n, t) {
        "use strict";
        Object.defineProperty(n, "__esModule", {
                value: !0
            }),
            n.removePrimitive = function(e, n, t) {
                var o = n[e.id];
                if (r(o)) {
                    var i = o.primitive;
                    try {
                        t.remove(i)
                    } catch (e) {}
                    i.isDestroyed && !i.isDestroyed() && i.destroy(),
                        delete n[e.id]
                }
            };
        var o, i = t(0);
        var r = ((o = i) && o.__esModule ? o : {
            default: o
        }).default.defined
    }])
});